[INFO] cloning repository https://github.com/gaul/nobuildlitter
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gaul/nobuildlitter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgaul%2Fnobuildlitter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgaul%2Fnobuildlitter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 894968d9d25e81653c27e7ae07f4925ae95ec948
[INFO] fixing gaul/nobuildlitter against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgaul%2Fnobuildlitter" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/gaul/nobuildlitter
[INFO] finished tweaking git repo https://github.com/gaul/nobuildlitter
[INFO] tweaked toml for git repo https://github.com/gaul/nobuildlitter written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gaul/nobuildlitter on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/gaul/nobuildlitter already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `crate_type` is deprecated in favor of `crate-type` and will not work in the 2024 edition
[INFO] [stderr] (in the `nobuildlitter` library target)
[INFO] [stderr] warning: `nobuildlitter` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 36e9aad287b077fe194fcc80e8edb0e1d6b3cb204f77c55d41a338946b2f0036
[INFO] running `Command { std: "docker" "start" "36e9aad287b077fe194fcc80e8edb0e1d6b3cb204f77c55d41a338946b2f0036", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "36e9aad287b077fe194fcc80e8edb0e1d6b3cb204f77c55d41a338946b2f0036" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "36e9aad287b077fe194fcc80e8edb0e1d6b3cb204f77c55d41a338946b2f0036", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "36e9aad287b077fe194fcc80e8edb0e1d6b3cb204f77c55d41a338946b2f0036" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] warning: Cargo.toml: `crate_type` is deprecated in favor of `crate-type` and will not work in the 2024 edition
[INFO] [stderr] (in the `nobuildlitter` library target)
[INFO] [stderr] warning: `nobuildlitter` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.68
[INFO] [stderr]     Checking redhook v1.0.0
[INFO] [stderr]     Checking nobuildlitter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/main.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.63s
[INFO] [stderr] crater-edition-check: nobuildlitter v0.1.0 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr] warning: Cargo.toml: `crate_type` is deprecated in favor of `crate-type` and will not work in the 2024 edition
[INFO] [stderr] (in the `nobuildlitter` library target)
[INFO] [stderr] warning: `nobuildlitter` (manifest) generated 1 warning
[INFO] [stderr]     Checking nobuildlitter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.97s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] warning: Cargo.toml: `crate_type` is deprecated in favor of `crate-type` and will not work in the 2024 edition
[INFO] [stderr] (in the `nobuildlitter` library target)
[INFO] [stderr] warning: `nobuildlitter` (manifest) generated 1 warning
[INFO] [stderr]     Checking nobuildlitter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stdout] warning[E0133]: call to unsafe function `my_creat` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |         my_creat(pathname, mode)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / hook! {
[INFO] [stdout] 13 | |     unsafe fn creat64(pathname: *const c_char, mode: mode_t) -> c_int => my_creat64 {
[INFO] [stdout] 14 | |         my_creat(pathname, mode)
[INFO] [stdout] 15 | |     }
[INFO] [stdout] 16 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]    = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_open` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         my_open(pathname, flags, mode)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | / hook! {
[INFO] [stdout] 19 | |     unsafe fn open64(pathname: *const c_char, flags: c_int, mode: mode_t) -> c_int => my_open64 {
[INFO] [stdout] 20 | |         my_open(pathname, flags, mode)
[INFO] [stdout] 21 | |     }
[INFO] [stdout] 22 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_openat` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         my_openat(dirfd, pathname, flags, mode)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | / hook! {
[INFO] [stdout] 25 | |     unsafe fn openat64(dirfd: c_int, pathname: *const c_char, flags: c_int, mode: mode_t) -> c_int => my_openat64 {
[INFO] [stdout] 26 | |         my_openat(dirfd, pathname, flags, mode)
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_fopen` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         my_fopen(pathname, mode)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | / hook! {
[INFO] [stdout] 30 | |     unsafe fn fopen64(pathname: *const c_char, mode: *const c_char) -> *mut FILE => my_fopen64 {
[INFO] [stdout] 31 | |         my_fopen(pathname, mode)
[INFO] [stdout] 32 | |     }
[INFO] [stdout] 33 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:37:49
[INFO] [stdout]    |
[INFO] [stdout] 37 |         eprintln!("hooked creat: \"{}\" {:#o}", CStr::from_ptr(pathname).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | / hook! {
[INFO] [stdout] 36 | |     unsafe fn creat(pathname: *const c_char, mode: mode_t) -> c_int => my_creat {
[INFO] [stdout] 37 | |         eprintln!("hooked creat: \"{}\" {:#o}", CStr::from_ptr(pathname).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout] 38 | |         my_open(pathname, O_CREAT|O_WRONLY|O_TRUNC, mode)
[INFO] [stdout] 39 | |     }
[INFO] [stdout] 40 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_open` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         my_open(pathname, O_CREAT|O_WRONLY|O_TRUNC, mode)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:44:54
[INFO] [stdout]    |
[INFO] [stdout] 44 |         eprintln!("hooked open: \"{}\" {:#x} {:#o}", CStr::from_ptr(pathname).to_str().unwrap(), flags, mode);  // TODO: remove
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | / hook! {
[INFO] [stdout] 43 | |     unsafe fn open(pathname: *const c_char, flags: c_int, mode: mode_t) -> c_int => my_open {
[INFO] [stdout] 44 | |         eprintln!("hooked open: \"{}\" {:#x} {:#o}", CStr::from_ptr(pathname).to_str().unwrap(), flags, mode);  // TODO: remove
[INFO] [stdout] 45 | |         my_openat(AT_FDCWD, pathname, flags, mode)
[INFO] [stdout] 46 | |     }
[INFO] [stdout] 47 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_openat` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         my_openat(AT_FDCWD, pathname, flags, mode)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:51:92
[INFO] [stdout]     |
[INFO] [stdout]  51 | ..."{}\" flags: {:#x} mode: {:#o}", dirfd, CStr::from_ptr(pathname).to_str().unwrap(), flags, mode);  // TODO: remove
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:49:1
[INFO] [stdout]     |
[INFO] [stdout]  49 | / hook! {
[INFO] [stdout]  50 | |     unsafe fn openat(dirfd: c_int, pathname: *const c_char, flags: c_int, mode: mode_t) -> c_int => my_openat {
[INFO] [stdout]  51 | |         eprintln!("hooked openat: dirfd: {} path: \"{}\" flags: {:#x} mode: {:#o}", dirfd, CStr::from_ptr(pathname).to_str().unwr...
[INFO] [stdout]  52 | |         let mut read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 110 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:52:29
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let mut read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:55:20
[INFO] [stdout]    |
[INFO] [stdout] 55 |             return real!(openat)(dirfd, pathname, flags, mode);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:61:20
[INFO] [stdout]    |
[INFO] [stdout] 61 |             return real!(openat)(dirfd, pathname, flags, mode);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:65:20
[INFO] [stdout]    |
[INFO] [stdout] 65 |             return real!(openat)(dirfd, pathname, flags, mode);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:98:26
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 let fd = real!(openat)(dirfd, CString::new(write_path).unwrap().as_ptr(), flags, mode);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |         real!(openat)(dirfd, CString::new(read_path).unwrap().as_ptr(), flags, mode)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:114:46
[INFO] [stdout]     |
[INFO] [stdout] 114 |         eprintln!("hooked access: {} {:#x}", CStr::from_ptr(pathname).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:112:1
[INFO] [stdout]     |
[INFO] [stdout] 112 | / hook! {
[INFO] [stdout] 113 | |     unsafe fn access(pathname: *const c_char, mode: c_int) -> c_int => my_access {
[INFO] [stdout] 114 | |         eprintln!("hooked access: {} {:#x}", CStr::from_ptr(pathname).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout] 115 | |         my_faccessat(AT_FDCWD, pathname, mode, 0)
[INFO] [stdout] 116 | |     }
[INFO] [stdout] 117 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_faccessat` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         my_faccessat(AT_FDCWD, pathname, mode, 0)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:121:65
[INFO] [stdout]     |
[INFO] [stdout] 121 | ...   eprintln!("hooked faccessat: {} {} {:#x} {:#x}", dirfd, CStr::from_ptr(pathname).to_str().unwrap(), mode, flags);  // TODO: r...
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:119:1
[INFO] [stdout]     |
[INFO] [stdout] 119 | / hook! {
[INFO] [stdout] 120 | |     unsafe fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int => my_faccessat {
[INFO] [stdout] 121 | |         eprintln!("hooked faccessat: {} {} {:#x} {:#x}", dirfd, CStr::from_ptr(pathname).to_str().unwrap(), mode, flags);  // TOD...
[INFO] [stdout] 122 | |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 137 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:125:20
[INFO] [stdout]     |
[INFO] [stdout] 125 |             return real!(faccessat)(dirfd, pathname, mode, flags)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:131:21
[INFO] [stdout]     |
[INFO] [stdout] 131 |         let value = real!(faccessat)(dirfd, CString::new(write_path).unwrap().as_ptr(), mode, flags);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         real!(faccessat)(dirfd, CString::new(read_path).unwrap().as_ptr(), mode, flags)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:141:38
[INFO] [stdout]     |
[INFO] [stdout] 141 |         eprintln!("hooked stat: {}", CStr::from_ptr(pathname).to_str().unwrap());  // TODO: remove
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:139:1
[INFO] [stdout]     |
[INFO] [stdout] 139 | / hook! {
[INFO] [stdout] 140 | |     unsafe fn stat(pathname: *const c_char, statbuf: *mut stat) -> c_int => my_stat {
[INFO] [stdout] 141 | |         eprintln!("hooked stat: {}", CStr::from_ptr(pathname).to_str().unwrap());  // TODO: remove
[INFO] [stdout] 142 | |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 160 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:142:25
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:145:20
[INFO] [stdout]     |
[INFO] [stdout] 145 |             return real!(stat)(pathname, statbuf)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:151:21
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let value = real!(stat)(CString::new(write_path).unwrap().as_ptr(), statbuf);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         real!(stat)(pathname, statbuf)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:164:39
[INFO] [stdout]     |
[INFO] [stdout] 164 |         eprintln!("hooked lstat: {}", CStr::from_ptr(pathname).to_str().unwrap());  // TODO: remove
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:162:1
[INFO] [stdout]     |
[INFO] [stdout] 162 | / hook! {
[INFO] [stdout] 163 | |     unsafe fn lstat(pathname: *const c_char, statbuf: *mut stat) -> c_int => my_lstat {
[INFO] [stdout] 164 | |         eprintln!("hooked lstat: {}", CStr::from_ptr(pathname).to_str().unwrap());  // TODO: remove
[INFO] [stdout] 165 | |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 181 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:165:25
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:168:20
[INFO] [stdout]     |
[INFO] [stdout] 168 |             return real!(lstat)(pathname, statbuf)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:174:21
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let value = real!(lstat)(CString::new(write_path).unwrap().as_ptr(), statbuf);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |         real!(lstat)(pathname, statbuf)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:185:57
[INFO] [stdout]     |
[INFO] [stdout] 185 |         eprintln!("hooked fstatat: {} {} {:#x}", dirfd, CStr::from_ptr(pathname).to_str().unwrap(), flags);  // TODO: remove
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:183:1
[INFO] [stdout]     |
[INFO] [stdout] 183 | / hook! {
[INFO] [stdout] 184 | |     unsafe fn fstatat(dirfd: c_int, pathname: *const c_char, statbuf: *mut stat, flags: c_int) -> c_int => my_fstatat {
[INFO] [stdout] 185 | |         eprintln!("hooked fstatat: {} {} {:#x}", dirfd, CStr::from_ptr(pathname).to_str().unwrap(), flags);  // TODO: remove
[INFO] [stdout] 186 | |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:186:25
[INFO] [stdout]     |
[INFO] [stdout] 186 |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:189:20
[INFO] [stdout]     |
[INFO] [stdout] 189 |             return real!(fstatat)(dirfd, pathname, statbuf, flags)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:195:21
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let value = real!(fstatat)(dirfd, CString::new(write_path).unwrap().as_ptr(), statbuf, flags);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |         real!(fstatat)(dirfd, CString::new(read_path).unwrap().as_ptr(), statbuf, flags)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:207:32
[INFO] [stdout]     |
[INFO] [stdout] 207 |         eprintln!("chdir: {}", CStr::from_ptr(path).to_str().unwrap());
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:204:1
[INFO] [stdout]     |
[INFO] [stdout] 204 | / hook! {
[INFO] [stdout] 205 | |     unsafe fn chdir(path: *const c_char) -> c_int => my_chdir {
[INFO] [stdout] 206 | |         // TODO: what if switching to a write directory?
[INFO] [stdout] 207 | |         eprintln!("chdir: {}", CStr::from_ptr(path).to_str().unwrap());
[INFO] [stdout] ...   |
[INFO] [stdout] 211 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         real!(chdir)(path)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:217:40
[INFO] [stdout]     |
[INFO] [stdout] 217 |         panic!("unhandled chroot: {}", CStr::from_ptr(path).to_str().unwrap())
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:215:1
[INFO] [stdout]     |
[INFO] [stdout] 215 | / hook! {
[INFO] [stdout] 216 | |     unsafe fn chroot(path: *const c_char) -> c_int => my_chroot {
[INFO] [stdout] 217 | |         panic!("unhandled chroot: {}", CStr::from_ptr(path).to_str().unwrap())
[INFO] [stdout] 218 | |     }
[INFO] [stdout] 219 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:223:45
[INFO] [stdout]     |
[INFO] [stdout] 223 |         eprintln!("hooked mkdir: {} {:#o}", CStr::from_ptr(path).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:221:1
[INFO] [stdout]     |
[INFO] [stdout] 221 | / hook! {
[INFO] [stdout] 222 | |     unsafe fn mkdir(path: *const c_char, mode: mode_t) -> c_int => my_mkdir {
[INFO] [stdout] 223 | |         eprintln!("hooked mkdir: {} {:#o}", CStr::from_ptr(path).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout] 224 | |         my_mkdirat(AT_FDCWD, path, mode)
[INFO] [stdout] 225 | |     }
[INFO] [stdout] 226 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_mkdirat` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |         my_mkdirat(AT_FDCWD, path, mode)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:230:57
[INFO] [stdout]     |
[INFO] [stdout] 230 |         eprintln!("hooked mkdirat: {} {} {:#o}", dirfd, CStr::from_ptr(path).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:228:1
[INFO] [stdout]     |
[INFO] [stdout] 228 | / hook! {
[INFO] [stdout] 229 | |     unsafe fn mkdirat(dirfd: c_int, path: *const c_char, mode: mode_t) -> c_int => my_mkdirat {
[INFO] [stdout] 230 | |         eprintln!("hooked mkdirat: {} {} {:#o}", dirfd, CStr::from_ptr(path).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout] 231 | |         let read_path = CStr::from_ptr(path).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:231:25
[INFO] [stdout]     |
[INFO] [stdout] 231 |         let read_path = CStr::from_ptr(path).to_str().unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:235:20
[INFO] [stdout]     |
[INFO] [stdout] 235 |             return real!(mkdirat)(dirfd, path, mode)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 244 |         real!(mkdirat)(dirfd, CString::new(write_path).unwrap().as_ptr(), mode)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:250:27
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let oldpath_str = CStr::from_ptr(oldpath).to_str().unwrap();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:248:1
[INFO] [stdout]     |
[INFO] [stdout] 248 | / hook! {
[INFO] [stdout] 249 | |     unsafe fn rename(oldpath: *const c_char, newpath: *const c_char) -> c_int => my_rename {
[INFO] [stdout] 250 | |         let oldpath_str = CStr::from_ptr(oldpath).to_str().unwrap();
[INFO] [stdout] 251 | |         let newpath_str = CStr::from_ptr(newpath).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 255 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:251:27
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let newpath_str = CStr::from_ptr(newpath).to_str().unwrap();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_renameat` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:253:9
[INFO] [stdout]     |
[INFO] [stdout] 253 |         my_renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:260:27
[INFO] [stdout]     |
[INFO] [stdout] 260 |         let oldpath_str = CStr::from_ptr(oldpath).to_str().unwrap();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:257:1
[INFO] [stdout]     |
[INFO] [stdout] 257 | / hook! {
[INFO] [stdout] 258 | |     unsafe fn renameat(olddirfd: c_int, oldpath: *const c_char,
[INFO] [stdout] 259 | |                        newdirfd: c_int, newpath: *const c_char) -> c_int => my_renameat {
[INFO] [stdout] 260 | |         let oldpath_str = CStr::from_ptr(oldpath).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 271 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:261:27
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let newpath_str = CStr::from_ptr(newpath).to_str().unwrap();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 | /         real!(renameat)(olddirfd, CString::new(oldpath_str).unwrap().as_ptr(),
[INFO] [stdout] 269 | |                         newdirfd, CString::new(newpath_str).unwrap().as_ptr())
[INFO] [stdout]     | |______________________________________________________________________________^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:275:24
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let mode_str = CStr::from_ptr(mode).to_str().unwrap();
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:273:1
[INFO] [stdout]     |
[INFO] [stdout] 273 | / hook! {
[INFO] [stdout] 274 | |     unsafe fn fopen(pathname: *const c_char, mode: *const c_char) -> *mut FILE => my_fopen {
[INFO] [stdout] 275 | |         let mode_str = CStr::from_ptr(mode).to_str().unwrap();
[INFO] [stdout] 276 | |         eprintln!("hooked fopen: {} {}", CStr::from_ptr(pathname).to_str().unwrap(), mode_str);
[INFO] [stdout] ...   |
[INFO] [stdout] 290 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:276:42
[INFO] [stdout]     |
[INFO] [stdout] 276 |         eprintln!("hooked fopen: {} {}", CStr::from_ptr(pathname).to_str().unwrap(), mode_str);
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_openat` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:284:18
[INFO] [stdout]     |
[INFO] [stdout] 284 |         let fd = my_openat(AT_FDCWD, pathname, open_mode, DEFAULT_MODE);
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `libc::fdopen` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:288:9
[INFO] [stdout]     |
[INFO] [stdout] 288 |         fdopen(fd, mode)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:294:24
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let name_str = CStr::from_ptr(name).to_str().unwrap();
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:292:1
[INFO] [stdout]     |
[INFO] [stdout] 292 | / hook! {
[INFO] [stdout] 293 | |     unsafe fn unsetenv(name: *const c_char) -> c_int => my_unsetenv {
[INFO] [stdout] 294 | |         let name_str = CStr::from_ptr(name).to_str().unwrap();
[INFO] [stdout] 295 | |         eprintln!("hooked unsetenv: {}", name_str);
[INFO] [stdout] ...   |
[INFO] [stdout] 298 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:296:9
[INFO] [stdout]     |
[INFO] [stdout] 296 |         real!(unsetenv)(name)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_creat` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |         my_creat(pathname, mode)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / hook! {
[INFO] [stdout] 13 | |     unsafe fn creat64(pathname: *const c_char, mode: mode_t) -> c_int => my_creat64 {
[INFO] [stdout] 14 | |         my_creat(pathname, mode)
[INFO] [stdout] 15 | |     }
[INFO] [stdout] 16 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]    = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_open` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         my_open(pathname, flags, mode)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | / hook! {
[INFO] [stdout] 19 | |     unsafe fn open64(pathname: *const c_char, flags: c_int, mode: mode_t) -> c_int => my_open64 {
[INFO] [stdout] 20 | |         my_open(pathname, flags, mode)
[INFO] [stdout] 21 | |     }
[INFO] [stdout] 22 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_openat` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         my_openat(dirfd, pathname, flags, mode)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | / hook! {
[INFO] [stdout] 25 | |     unsafe fn openat64(dirfd: c_int, pathname: *const c_char, flags: c_int, mode: mode_t) -> c_int => my_openat64 {
[INFO] [stdout] 26 | |         my_openat(dirfd, pathname, flags, mode)
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_fopen` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         my_fopen(pathname, mode)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | / hook! {
[INFO] [stdout] 30 | |     unsafe fn fopen64(pathname: *const c_char, mode: *const c_char) -> *mut FILE => my_fopen64 {
[INFO] [stdout] 31 | |         my_fopen(pathname, mode)
[INFO] [stdout] 32 | |     }
[INFO] [stdout] 33 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:37:49
[INFO] [stdout]    |
[INFO] [stdout] 37 |         eprintln!("hooked creat: \"{}\" {:#o}", CStr::from_ptr(pathname).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | / hook! {
[INFO] [stdout] 36 | |     unsafe fn creat(pathname: *const c_char, mode: mode_t) -> c_int => my_creat {
[INFO] [stdout] 37 | |         eprintln!("hooked creat: \"{}\" {:#o}", CStr::from_ptr(pathname).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout] 38 | |         my_open(pathname, O_CREAT|O_WRONLY|O_TRUNC, mode)
[INFO] [stdout] 39 | |     }
[INFO] [stdout] 40 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_open` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         my_open(pathname, O_CREAT|O_WRONLY|O_TRUNC, mode)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:44:54
[INFO] [stdout]    |
[INFO] [stdout] 44 |         eprintln!("hooked open: \"{}\" {:#x} {:#o}", CStr::from_ptr(pathname).to_str().unwrap(), flags, mode);  // TODO: remove
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | / hook! {
[INFO] [stdout] 43 | |     unsafe fn open(pathname: *const c_char, flags: c_int, mode: mode_t) -> c_int => my_open {
[INFO] [stdout] 44 | |         eprintln!("hooked open: \"{}\" {:#x} {:#o}", CStr::from_ptr(pathname).to_str().unwrap(), flags, mode);  // TODO: remove
[INFO] [stdout] 45 | |         my_openat(AT_FDCWD, pathname, flags, mode)
[INFO] [stdout] 46 | |     }
[INFO] [stdout] 47 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_openat` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         my_openat(AT_FDCWD, pathname, flags, mode)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:51:92
[INFO] [stdout]     |
[INFO] [stdout]  51 | ..."{}\" flags: {:#x} mode: {:#o}", dirfd, CStr::from_ptr(pathname).to_str().unwrap(), flags, mode);  // TODO: remove
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:49:1
[INFO] [stdout]     |
[INFO] [stdout]  49 | / hook! {
[INFO] [stdout]  50 | |     unsafe fn openat(dirfd: c_int, pathname: *const c_char, flags: c_int, mode: mode_t) -> c_int => my_openat {
[INFO] [stdout]  51 | |         eprintln!("hooked openat: dirfd: {} path: \"{}\" flags: {:#x} mode: {:#o}", dirfd, CStr::from_ptr(pathname).to_str().unwr...
[INFO] [stdout]  52 | |         let mut read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 110 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:52:29
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let mut read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:55:20
[INFO] [stdout]    |
[INFO] [stdout] 55 |             return real!(openat)(dirfd, pathname, flags, mode);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:61:20
[INFO] [stdout]    |
[INFO] [stdout] 61 |             return real!(openat)(dirfd, pathname, flags, mode);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:65:20
[INFO] [stdout]    |
[INFO] [stdout] 65 |             return real!(openat)(dirfd, pathname, flags, mode);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:98:26
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 let fd = real!(openat)(dirfd, CString::new(write_path).unwrap().as_ptr(), flags, mode);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |         real!(openat)(dirfd, CString::new(read_path).unwrap().as_ptr(), flags, mode)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:114:46
[INFO] [stdout]     |
[INFO] [stdout] 114 |         eprintln!("hooked access: {} {:#x}", CStr::from_ptr(pathname).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:112:1
[INFO] [stdout]     |
[INFO] [stdout] 112 | / hook! {
[INFO] [stdout] 113 | |     unsafe fn access(pathname: *const c_char, mode: c_int) -> c_int => my_access {
[INFO] [stdout] 114 | |         eprintln!("hooked access: {} {:#x}", CStr::from_ptr(pathname).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout] 115 | |         my_faccessat(AT_FDCWD, pathname, mode, 0)
[INFO] [stdout] 116 | |     }
[INFO] [stdout] 117 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_faccessat` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         my_faccessat(AT_FDCWD, pathname, mode, 0)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:121:65
[INFO] [stdout]     |
[INFO] [stdout] 121 | ...   eprintln!("hooked faccessat: {} {} {:#x} {:#x}", dirfd, CStr::from_ptr(pathname).to_str().unwrap(), mode, flags);  // TODO: r...
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:119:1
[INFO] [stdout]     |
[INFO] [stdout] 119 | / hook! {
[INFO] [stdout] 120 | |     unsafe fn faccessat(dirfd: c_int, pathname: *const c_char, mode: c_int, flags: c_int) -> c_int => my_faccessat {
[INFO] [stdout] 121 | |         eprintln!("hooked faccessat: {} {} {:#x} {:#x}", dirfd, CStr::from_ptr(pathname).to_str().unwrap(), mode, flags);  // TOD...
[INFO] [stdout] 122 | |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 137 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:125:20
[INFO] [stdout]     |
[INFO] [stdout] 125 |             return real!(faccessat)(dirfd, pathname, mode, flags)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:131:21
[INFO] [stdout]     |
[INFO] [stdout] 131 |         let value = real!(faccessat)(dirfd, CString::new(write_path).unwrap().as_ptr(), mode, flags);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         real!(faccessat)(dirfd, CString::new(read_path).unwrap().as_ptr(), mode, flags)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:141:38
[INFO] [stdout]     |
[INFO] [stdout] 141 |         eprintln!("hooked stat: {}", CStr::from_ptr(pathname).to_str().unwrap());  // TODO: remove
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:139:1
[INFO] [stdout]     |
[INFO] [stdout] 139 | / hook! {
[INFO] [stdout] 140 | |     unsafe fn stat(pathname: *const c_char, statbuf: *mut stat) -> c_int => my_stat {
[INFO] [stdout] 141 | |         eprintln!("hooked stat: {}", CStr::from_ptr(pathname).to_str().unwrap());  // TODO: remove
[INFO] [stdout] 142 | |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 160 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:142:25
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:145:20
[INFO] [stdout]     |
[INFO] [stdout] 145 |             return real!(stat)(pathname, statbuf)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:151:21
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let value = real!(stat)(CString::new(write_path).unwrap().as_ptr(), statbuf);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         real!(stat)(pathname, statbuf)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:164:39
[INFO] [stdout]     |
[INFO] [stdout] 164 |         eprintln!("hooked lstat: {}", CStr::from_ptr(pathname).to_str().unwrap());  // TODO: remove
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:162:1
[INFO] [stdout]     |
[INFO] [stdout] 162 | / hook! {
[INFO] [stdout] 163 | |     unsafe fn lstat(pathname: *const c_char, statbuf: *mut stat) -> c_int => my_lstat {
[INFO] [stdout] 164 | |         eprintln!("hooked lstat: {}", CStr::from_ptr(pathname).to_str().unwrap());  // TODO: remove
[INFO] [stdout] 165 | |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 181 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:165:25
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:168:20
[INFO] [stdout]     |
[INFO] [stdout] 168 |             return real!(lstat)(pathname, statbuf)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:174:21
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let value = real!(lstat)(CString::new(write_path).unwrap().as_ptr(), statbuf);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |         real!(lstat)(pathname, statbuf)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:185:57
[INFO] [stdout]     |
[INFO] [stdout] 185 |         eprintln!("hooked fstatat: {} {} {:#x}", dirfd, CStr::from_ptr(pathname).to_str().unwrap(), flags);  // TODO: remove
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:183:1
[INFO] [stdout]     |
[INFO] [stdout] 183 | / hook! {
[INFO] [stdout] 184 | |     unsafe fn fstatat(dirfd: c_int, pathname: *const c_char, statbuf: *mut stat, flags: c_int) -> c_int => my_fstatat {
[INFO] [stdout] 185 | |         eprintln!("hooked fstatat: {} {} {:#x}", dirfd, CStr::from_ptr(pathname).to_str().unwrap(), flags);  // TODO: remove
[INFO] [stdout] 186 | |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:186:25
[INFO] [stdout]     |
[INFO] [stdout] 186 |         let read_path = CStr::from_ptr(pathname).to_str().unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:189:20
[INFO] [stdout]     |
[INFO] [stdout] 189 |             return real!(fstatat)(dirfd, pathname, statbuf, flags)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:195:21
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let value = real!(fstatat)(dirfd, CString::new(write_path).unwrap().as_ptr(), statbuf, flags);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |         real!(fstatat)(dirfd, CString::new(read_path).unwrap().as_ptr(), statbuf, flags)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:207:32
[INFO] [stdout]     |
[INFO] [stdout] 207 |         eprintln!("chdir: {}", CStr::from_ptr(path).to_str().unwrap());
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:204:1
[INFO] [stdout]     |
[INFO] [stdout] 204 | / hook! {
[INFO] [stdout] 205 | |     unsafe fn chdir(path: *const c_char) -> c_int => my_chdir {
[INFO] [stdout] 206 | |         // TODO: what if switching to a write directory?
[INFO] [stdout] 207 | |         eprintln!("chdir: {}", CStr::from_ptr(path).to_str().unwrap());
[INFO] [stdout] ...   |
[INFO] [stdout] 211 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         real!(chdir)(path)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:217:40
[INFO] [stdout]     |
[INFO] [stdout] 217 |         panic!("unhandled chroot: {}", CStr::from_ptr(path).to_str().unwrap())
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:215:1
[INFO] [stdout]     |
[INFO] [stdout] 215 | / hook! {
[INFO] [stdout] 216 | |     unsafe fn chroot(path: *const c_char) -> c_int => my_chroot {
[INFO] [stdout] 217 | |         panic!("unhandled chroot: {}", CStr::from_ptr(path).to_str().unwrap())
[INFO] [stdout] 218 | |     }
[INFO] [stdout] 219 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:223:45
[INFO] [stdout]     |
[INFO] [stdout] 223 |         eprintln!("hooked mkdir: {} {:#o}", CStr::from_ptr(path).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:221:1
[INFO] [stdout]     |
[INFO] [stdout] 221 | / hook! {
[INFO] [stdout] 222 | |     unsafe fn mkdir(path: *const c_char, mode: mode_t) -> c_int => my_mkdir {
[INFO] [stdout] 223 | |         eprintln!("hooked mkdir: {} {:#o}", CStr::from_ptr(path).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout] 224 | |         my_mkdirat(AT_FDCWD, path, mode)
[INFO] [stdout] 225 | |     }
[INFO] [stdout] 226 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_mkdirat` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |         my_mkdirat(AT_FDCWD, path, mode)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:230:57
[INFO] [stdout]     |
[INFO] [stdout] 230 |         eprintln!("hooked mkdirat: {} {} {:#o}", dirfd, CStr::from_ptr(path).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:228:1
[INFO] [stdout]     |
[INFO] [stdout] 228 | / hook! {
[INFO] [stdout] 229 | |     unsafe fn mkdirat(dirfd: c_int, path: *const c_char, mode: mode_t) -> c_int => my_mkdirat {
[INFO] [stdout] 230 | |         eprintln!("hooked mkdirat: {} {} {:#o}", dirfd, CStr::from_ptr(path).to_str().unwrap(), mode);  // TODO: remove
[INFO] [stdout] 231 | |         let read_path = CStr::from_ptr(path).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:231:25
[INFO] [stdout]     |
[INFO] [stdout] 231 |         let read_path = CStr::from_ptr(path).to_str().unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:235:20
[INFO] [stdout]     |
[INFO] [stdout] 235 |             return real!(mkdirat)(dirfd, path, mode)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 244 |         real!(mkdirat)(dirfd, CString::new(write_path).unwrap().as_ptr(), mode)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:250:27
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let oldpath_str = CStr::from_ptr(oldpath).to_str().unwrap();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:248:1
[INFO] [stdout]     |
[INFO] [stdout] 248 | / hook! {
[INFO] [stdout] 249 | |     unsafe fn rename(oldpath: *const c_char, newpath: *const c_char) -> c_int => my_rename {
[INFO] [stdout] 250 | |         let oldpath_str = CStr::from_ptr(oldpath).to_str().unwrap();
[INFO] [stdout] 251 | |         let newpath_str = CStr::from_ptr(newpath).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 255 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:251:27
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let newpath_str = CStr::from_ptr(newpath).to_str().unwrap();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_renameat` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:253:9
[INFO] [stdout]     |
[INFO] [stdout] 253 |         my_renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:260:27
[INFO] [stdout]     |
[INFO] [stdout] 260 |         let oldpath_str = CStr::from_ptr(oldpath).to_str().unwrap();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:257:1
[INFO] [stdout]     |
[INFO] [stdout] 257 | / hook! {
[INFO] [stdout] 258 | |     unsafe fn renameat(olddirfd: c_int, oldpath: *const c_char,
[INFO] [stdout] 259 | |                        newdirfd: c_int, newpath: *const c_char) -> c_int => my_renameat {
[INFO] [stdout] 260 | |         let oldpath_str = CStr::from_ptr(oldpath).to_str().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 271 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:261:27
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let newpath_str = CStr::from_ptr(newpath).to_str().unwrap();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 | /         real!(renameat)(olddirfd, CString::new(oldpath_str).unwrap().as_ptr(),
[INFO] [stdout] 269 | |                         newdirfd, CString::new(newpath_str).unwrap().as_ptr())
[INFO] [stdout]     | |______________________________________________________________________________^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:275:24
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let mode_str = CStr::from_ptr(mode).to_str().unwrap();
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:273:1
[INFO] [stdout]     |
[INFO] [stdout] 273 | / hook! {
[INFO] [stdout] 274 | |     unsafe fn fopen(pathname: *const c_char, mode: *const c_char) -> *mut FILE => my_fopen {
[INFO] [stdout] 275 | |         let mode_str = CStr::from_ptr(mode).to_str().unwrap();
[INFO] [stdout] 276 | |         eprintln!("hooked fopen: {} {}", CStr::from_ptr(pathname).to_str().unwrap(), mode_str);
[INFO] [stdout] ...   |
[INFO] [stdout] 290 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:276:42
[INFO] [stdout]     |
[INFO] [stdout] 276 |         eprintln!("hooked fopen: {} {}", CStr::from_ptr(pathname).to_str().unwrap(), mode_str);
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `my_openat` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:284:18
[INFO] [stdout]     |
[INFO] [stdout] 284 |         let fd = my_openat(AT_FDCWD, pathname, open_mode, DEFAULT_MODE);
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `libc::fdopen` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:288:9
[INFO] [stdout]     |
[INFO] [stdout] 288 |         fdopen(fd, mode)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:294:24
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let name_str = CStr::from_ptr(name).to_str().unwrap();
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:292:1
[INFO] [stdout]     |
[INFO] [stdout] 292 | / hook! {
[INFO] [stdout] 293 | |     unsafe fn unsetenv(name: *const c_char) -> c_int => my_unsetenv {
[INFO] [stdout] 294 | |         let name_str = CStr::from_ptr(name).to_str().unwrap();
[INFO] [stdout] 295 | |         eprintln!("hooked unsetenv: {}", name_str);
[INFO] [stdout] ...   |
[INFO] [stdout] 298 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the macro `hook` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:296:9
[INFO] [stdout]     |
[INFO] [stdout] 296 |         real!(unsetenv)(name)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/main.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.63s
[INFO] [stderr] crater-edition-check: nobuildlitter v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr] error: failed to parse manifest at `/opt/rustwide/workdir/Cargo.toml`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   `crate_type` is unsupported as of the 2024 edition; instead use `crate-type`
[INFO] [stderr]   (in the `nobuildlitter` library target)
[INFO] running `Command { std: "docker" "inspect" "36e9aad287b077fe194fcc80e8edb0e1d6b3cb204f77c55d41a338946b2f0036", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "36e9aad287b077fe194fcc80e8edb0e1d6b3cb204f77c55d41a338946b2f0036", kill_on_drop: false }`
[INFO] [stdout] 36e9aad287b077fe194fcc80e8edb0e1d6b3cb204f77c55d41a338946b2f0036
